package net.maku.infra.biz.service.file;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.maku.infra.biz.controller.file.vo.FilePageReqVO;
import net.maku.infra.biz.controller.file.vo.FileUploadReqVO;
import net.maku.infra.biz.pojo.file.InfraFilePojo;

/**
 * 文件 Service 接口
 *
 * @author 哈博智能
 */
public interface FileService {

    /**
     * 获得文件分页
     *
     * @param pageReqVO 分页查询
     * @return 文件分页
     */
    Page<InfraFilePojo> getFilePage(FilePageReqVO pageReqVO);
    

    /**
     * 保存文件，并返回文件的访问路径
     *
     * @param uploadReqVO 文件信息
     */
    String createFile(FileUploadReqVO uploadReqVO);

    /**
     * 保存文件，并返回文件的访问路径
     *
     * @param name 文件名称
     * @param path 文件路径
     * @param content 文件内容
     * @return 文件路径
     */
    String createFile(String name, String path, byte[] content,String source,boolean isRename);

    /**
     * 删除文件
     *
     * @param id 编号
     */
    void deleteFile(Long id) throws Exception;

    /**
     * 获得文件内容
     *
     * @param configId 配置编号
     * @param path 文件路径
     * @return 文件内容
     */
    byte[] getFileContent(Long configId, String path) throws Exception;

}
